package com.robinmouren.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.robinmouren.dto.QuotationPageDto;
import com.robinmouren.dto.UserLoginDto;
import com.robinmouren.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.robinmouren.enumeration.OperationType;
import com.robinmouren.exception.BaseException;
import com.robinmouren.vo.ClientInfoVo;
import com.robinmouren.vo.QuotationPageVo;
import org.springframework.transaction.annotation.Transactional;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author Robinmouren
 * @since 2024-05-11
 */
public interface IUserService extends IService<User> {


    /**
     * 用户登录
     * @param loginDto
     * @return
     */
    User login(UserLoginDto loginDto);


    /**
     * 用户注册
     * @param username
     * @param password
     */
    void register(String username, String password);


    /**
     * 用户退出登录
     * @param id
     */
    @Transactional(rollbackFor = BaseException.class)
    void quit(String id);


    /**
     * 询价单分页
     * @param pageDto
     * @return
     */

    @Transactional
    Page<QuotationPageVo> quotationPage(QuotationPageDto pageDto);


    /**
     * 获取用户信息
     * @param id
     * @return
     */
    User userInfoGet(String id);


    /**
     * 根据订单号获取客户信息
     * @return
     */
    ClientInfoVo clientGetByNumber(String orderNumber);


}
